﻿//#define _CRT_SECURE_NO_WARNINGS
//
//#include<iostream>
//using namespace std;
//
//class Date
//{
//	friend ostream& operator<<(ostream& out, const Date& d);
//	friend istream& operator>>(istream& in, Date& d);
//
//public:
//	Date(int year = 1, int month = 1, int day = 1)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//
//
//
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//ostream& operator<<(ostream& out, const Date& d)
//{
//	out << d._year << "年" << d._month << "月" << d._day << "日" << endl;
//	return out;
//}
//
//istream& operator>>(istream& in, Date& d)
//{
//	cout << "请输入年 月 日:>";
//	in >> d._year >> d._month >> d._day;
//
//	return in;
//}
//
//
//int main()
//{
//
//	Date d1;
//
//	cin >> d1;
//	cout << d1;
//
//	return 0;
//}


//#include<iostream>
//
//using namespace std;
//
//class Date
//
//{
//
//public:
//	Date(int year = 1, int month = 1, int day = 1)
//	{
//		_year = year;
//		_month = month;
//		_day = day;
//	}
//	// void Print(const Date* const this) const
//
//	void Print()
//
//	{
//		cout << _year << "-" << _month << "-" << _day << endl;
//	}
//
//private:
//	int _year;
//	int _month;
//	int _day;
//};
//
//int main()
//{
//	Date d1(2024, 7, 5);
//	//可以正常调用
//	d1.Print();
//
//	const Date d2(2024, 8, 5);
//	//无法正常调用，会报错
//	d2.Print();
//
//	return 0;
//}



#include<iostream>
using namespace std;

class Date
{
public:
	Date(int year = 1, int month = 1, int day = 1)
	{
		_year = year;
		_month = month;
		_day = day;
	}

	//取地址重载
	Date* operator&()
	{
		return nullptr;
	}

	//const 取地址重载
	const Date* operator&() const
	{
		return nullptr;
	}

private:
	int _year; // 年 
	int _month; // ⽉ 
	int _day; // ⽇ 
};

int main()
{
	Date d1;
	const Date d2(2024, 8, 5);

	cout << &d1 << endl;
	cout << &d2 << endl;
}
